//Added by Shen
typedef unsigned char BYTE;
typedef unsigned char *PBYTE;
typedef unsigned short WORD;
typedef unsigned short *PWORD;

typedef unsigned int DWORD;
typedef unsigned int UINT;
typedef int LONG;
typedef unsigned long ULONG;
typedef unsigned long long ULONGLONG;
typedef long long __int64;


typedef struct tagBITMAPFILEHEADER {
        short    bfType;
        int     bfSize;
        short    bfReserved1;
        short    bfReserved2;
        int      bfOffBits;
} BITMAPFILEHEADER;

typedef struct tagBITMAPINFOHEADER{
        DWORD      biSize;
        LONG       biWidth;
        LONG       biHeight;
        WORD       biPlanes;
        WORD       biBitCount;
        DWORD      biCompression;
        DWORD      biSizeImage;
        LONG       biXPelsPerMeter;
        LONG       biYPelsPerMeter;
        DWORD      biClrUsed;
        DWORD      biClrImportant;
} BITMAPINFOHEADER;

typedef struct tagRGBQUAD {
        BYTE    rgbBlue;
        BYTE    rgbGreen;
        BYTE    rgbRed;
        BYTE    rgbReserved;
} RGBQUAD;

typedef struct tagBITMAPINFO {
    BITMAPINFOHEADER    bmiHeader;
    RGBQUAD             bmiColors[1];
} BITMAPINFO;
